// 该案例是一个日历控件的应用实例，并建立一个日历选择对话框，
// 可以更改选择当前的日历信息，当选择一个日期并且单击确定之后会在终端输出对应的信息。
#include <gtk/gtk.h>

// 日历构件
GtkWidget *calendar;

// 按键处理的回调函数
void button_event(GtkWidget *widget,gpointer *data){
	guint year;
	guint month;
	guint day;
	
	// 取得选择的年月日
	gtk_calendar_get_date(GTK_CALENDAR(calendar),&year,&month,&day);

	g_print("%d-%d-%d\n",year,month,day);
}

int main(int argc, char *argv[]){
	
	GtkWidget *window,*button,*box;
	
	gtk_init(&argc,&argv);
	window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"CalendarTest");
	//gtk_widget_set_usize(window,500,500);
	gtk_signal_connect(GTK_OBJECT(window),"delete_event",G_CALLBACK(gtk_main_quit),NULL);

	// 创建box和日历，并将日历添加到box中
	box = gtk_vbox_new(FALSE,10);
	// 将组合窗加入窗体中
	gtk_container_add(GTK_WINDOW(window),box);

	calendar = gtk_calendar_new();
	gtk_box_pack_start(GTK_BOX(box),calendar,TRUE,TRUE,5);
	gtk_widget_show(calendar);

	button = gtk_button_new_with_label("确定");
	gtk_box_pack_start(GTK_BOX(box),button,TRUE,TRUE,0);
	gtk_signal_connect(GTK_OBJECT(button),"clicked",GTK_SIGNAL_FUNC(button_event),NULL);
	gtk_widget_show(button);
	gtk_widget_show(box);
	gtk_widget_show(window);

	gtk_main();

	return 0;

}
